package cn.wolfcode.trip.base.service;

import cn.wolfcode.trip.base.domain.Friend;
import cn.wolfcode.trip.base.domain.User;
import cn.wolfcode.trip.base.query.QueryObject;
import com.github.pagehelper.PageInfo;

import java.util.List;
import java.util.Map;

public interface IUserService {

    void saveOrUpdate(User u);

    /**
     * 用户注册
     * @param u
     * @return
     */
    void regist(User u);

    /**
     * 用户登录
     * @param email
     * @param password
     * @return
     */
    User login(String email, String password);

    PageInfo<User> query(QueryObject qo);

    User selectById(Long id);

    /**
     * 为当前用户增加关注好友的方法
     * @param friend
     */
    void addFriend(Friend friend);

    /**
     * 判断当前登录用户与目标用户是否是好友关系的方法
     * @param userId
     * @param friendId
     * @return
     */
    Friend isFriend(Long userId, Long friendId);

    /**
     * 取消关注的方法
     * @param userId
     * @param friendId
     */
    void deleteFriend(Long userId, Long friendId);

    Map selectFansAndFriendsById(Long id);

    List<User> selectAll();

}
